艰难环境下,面腾讯、美团、商汤科技等七家大厂前端有感
The following article is from 小羊快码 Author 小羊快码
1. JavaScript 基础,包括原型与原型链、继承、事件循环、作用域、ES6语法、垃圾回收与内存泄漏等。
2. 网络通信,重点有浏览器缓存、Http2.0、Https通信过程、TCP与UDP、DNS解析、CDN缓存等。
3. HTML和CSS,这块被问的内容比较少,重点从布局入手,比如单位、盒模型、定位、响应式布局等知识点。
4. 前端框架,框架的底层原理是一定会问的,至少要深入掌握一个前端框架。目前业界内比较流行的框架是 React 和 Vue,React 的知识点有 React diff、生命周期、Fiber 架构、Hooks 等;Vue 的知识点有Vue diff、响应式原理、Vue3.0新特性等。
5. 打包工具,主要围绕Webpack展开,比如loader和plugin原理、webpack构建流程、热更新原理、性能优化等。除此以外,打包界的新宠esbuild也可以了解下。
6. 加分项,除了JavaScript外,还了解哪些编程语言
面试的内容基本都会围绕简历展开,如果你为了提高简历含金量,虚构一些项目经历或者技能,那很可能就会出现一问三不知的情况。
千万不要抱着侥幸心理,认为这些东西有可能不会被问到,如果被问到又答不上来,会让人怀疑你简历内容的真实性。所以简历一定要贴合自身实际,不要打肿脸充胖子。
3. 信息精简
这个babel插件的适用场景有哪些
开发这个babel插件遇到了哪些问题,怎么解决的
为什么会想到用babel方案去开发这个插件,调研流程是怎么样的
这个插件还有哪些可以优化的地方,怎么优化
babel的preset和pollyfill可以互相替代吗,为什么可以/不可以
babel7相较于之前做了哪些优化
一连串问题问下来,差点没扛住....
2. 每场面试结束都要及时复盘
每场面试下来一定要及时复盘。如果在家视频面试,可以提前录下面试过程。这样就能知道我们在面试中的表现。对于没回答上来的问题,一定要去做功课,完善自己的知识体系。
其实面得越多就会发现,考察的核心问题就那几个。面得越多,对这些问题的理解就越深刻,回答起来也更游刃有余。
3. 直面问题,不要答非所问
4. 分阶段准备
一面
曾经做过的最有挑战的一个项目
DOM 的事件机制,怎么阻止事件捕获
常用的 ES6 语法有哪些,var 怎么实现let
React Hooks vs Component
React中的 useCallback 和 useMemo 有什么区别,什么情况下需要用 useCallback
浏览器的 Event Loop 机制
setState 是同步还是异步的
Set 的用法,用 Set 实现数组去重
Graphql 的使用
移动端适配方案, rem 和 em 的区别
React 解决了什么问题
前端跨域怎么做
编程题:用 setTimeout 实现 setInterval
二面
Vue 的双向绑定机制
字节小程序和微信小程序区别
React Fiber 机制
React Hooks 的原理
Node 遇到过哪些性能问题
Node 做耗时的计算时候,如何避免阻塞
低代码平台运行时的生成逻辑
低代码平台性能优化
低代码平台组件发布流程
上家公司做了哪些事情以及做事的流程
未来职业规划
感兴趣的工作方向
编程题:输入两个数组 [1,2,3,2,1], [3,2,1,4,7] 返回公共的并且长度最长子数组的长度
三面
大文件的分片上传和断点续传怎么做的
抖音APP 与 H5 如何通信
现在需要用新技术,需要从哪些方面思考
如何针对性能指标做优化,有没有了解过业界的性能指标统计方式
Express 和 Koa 的区别
项目经历
推动过什么事情
对下一份工作的期望
一面
less-loader 的 less 转成 css 的底层原理
webpack的 loader 和 plugin 区别
webpack 常用插件
webpack 如何做代码拆分
webpack tree shaking 原理
webpack 动态导入原理
webpack 热更新原理
webpack5 新特性
esm 和 commonjs 的区别
TS 的 type 和 interface 的区别
TS 怎么做枚举
TS 泛型
canvas 绘制流程,canvas 里的图片跨域怎么处理
项目经历:babel 插件的实现
编程题:实现一个深拷贝
二面
链表和线性表 crud 比较
了解哪些设计模式,实现其中一个设计模式
canvas 绘制流程,遇到了哪些问题
从输入URL到浏览器显示页面过程中都发生了什么?
移动端布局方案
浏览器 Event Loop
对图形绘制了解多少
ES6 为什么要转成 ES5
H5 开发时遇到了哪些问题,怎么定位的
DOM 事件流
平时怎么做性能优化
最有亮点的两个项目
三面
HTTPS 加解密过程
哈希表原理,哈希碰撞时怎么处理
内存回收机制
栈内存和堆内存的概念
线上错误监控怎么做
CI/CD 流程,有哪些改进点
进程间如何通信
低代码平台的实现
对下一份工作的期望
一面
CSS 预处理器对比
CSS 定位有哪些取值
原型与原型链,函数怎么实现继承
this的指向,call、apply的区别
Vue 3.0 和 2.0 区别
Vue.$nextTick 作用
Vue 和 React 的 diff 有什么区别
proxy 拦截器的用法
DNS 解析流程
事件循环
闭包和内存泄漏
最有亮点的一个项目
二面
HTTP 幂等性定义和常用方法的幂等性
redux 单向数据流有哪些优势,redux 中间件实现原理
React HOC vs renderProps
浏览器里的线程与进程
requestAnimationFram 与 requestIdleCallback 的区别
npm管理痛点,如何解决
gitflow流程、分支管理
websocket建立连接过程
组件/工具库打包时的格式输出,如:CommonJS、ESM、UMD等,他们之间有什么区别
Http 301、302 状态码的区别
H5 性能优化
编程题:设计一个flat函数将如下数组arr=[1,2,['3',4,'5',[6,[7,8],9]]]输出为1,2,'3',4,'5',6,7,8,9。至少写出两种方法,要求不能改变数组中的原始数据类型
三面
BI 可视化系统介绍
在字节之后的提升有哪些
目前前端可以做的优化有哪些
新旧系统重构的时候,怎么过渡上线
Vue React 的区别
字节小程序介绍一下
自己未来的规划。自己的优缺点、周围人人对自己的评价
如何学习一门新技术
对神策数据的了解
对大数据的了解
一面
进程通信的几种方式
TCP/IP 如何保证传输稳定性
对称加密和非对称加密的使用场景
浏览器帧卡顿检测
Vue 和 React的设计理念
性能指标FP、FCP和FMP分别跟哪些因素有关
低代码平台的技术原理
业界其他低代码平台实现方式,对比差异
nginx怎么做反向代理与负载均衡
编程题:设计和实现一个 LRU (最近最少使用) 缓存机制,满足:1.获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。2.写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。
一面
JS 有哪些数据类型
JS 数据类型识别的方式,有什么缺点
原型和原型链,函数怎么实现继承
new 发生了什么
symbol 类型的用法
script 标签里分别设置 defer 和 async, 它们的执行顺序是怎么样的
React router 的两种模式模式,怎么动态获取路由上的 id
redux 中间件的实现原理
React 的 purecomponent 和 component 的区别
generator 函数的用法
React diff 节点对比的过程
Vite 打包工具的使用
箭头函数和普通函数区别
什么是执行上下文
堆内存和栈内存,数组存储在堆内存还是栈内存
HTTP2.0 相较于 HTTP1.0 的改进
isNaN和number.isNaN区别
闭包和内存泄漏
setState 是同步还是异步的
HTTP 与 HTTPS 的区别
React Hooks 的 useState 为什么不能放到条件语句
解释下浏览器的同源策略
一面
Node 怎么做性能监控
React diff 节点移动的具体过程
讲一讲浏览器缓存
ES5 最优的一种函数继承,静态属性怎么做继承的
前端怎么做性能监控
V8 引擎对垃圾回收的优化
导致内存泄漏的方法,怎么监控内存泄漏
作用域和执行上下文区别
this的指向问题
Array方法,forEach、map 对比
for of 和 for in 区别;for of 循环数组时怎么拿到数组索引
移动端布局方案;怎么设置根元素的font-size大小的
Webpack bundle、chunk、module的区别
Webpack 热更新原理,怎么找到对应的局部模块做更新的
项目经历:babel插件的实现
一面
HTTP2.0 和 HTTP1.0 的区别,HTTP2.0 有什么缺点
闭包及闭包的使用场景
实现一个侧边栏组件思路
浏览器缓存机制
重排与重绘,怎么减少重排
DOM 事件机制,不会冒泡的事件
cookie 和 session 的区别
sql 相关操作,增删查改
web 安全,xss、csrf 攻击特点及防御方式
最后祝大家都能收获理想的offer!冲!
- EOF -
觉得本文对你有帮助?请分享给更多人
推荐关注「前端大全」,提升前端技能
点赞和在看就是最大的支持❤️